home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / dns / opcode.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  2KB  |  58 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. import dns.exception as dns
  5. QUERY = 0
  6. IQUERY = 1
  7. STATUS = 2
  8. NOTIFY = 4
  9. UPDATE = 5
  10. _by_text = {
  11.     'QUERY': QUERY,
  12.     'IQUERY': IQUERY,
  13.     'STATUS': STATUS,
  14.     'NOTIFY': NOTIFY,
  15.     'UPDATE': UPDATE }
  16. _by_value = []([ (y, x) for x, y in _by_text.iteritems() ])
  17.  
  18. class UnknownOpcode(dns.exception.DNSException):
  19.     pass
  20.  
  21.  
  22. def from_text(text):
  23.     if text.isdigit():
  24.         value = int(text)
  25.         if value >= 0 and value <= 15:
  26.             return value
  27.         
  28.     
  29.     value = _by_text.get(text.upper())
  30.     if value is None:
  31.         raise UnknownOpcode
  32.     
  33.     return value
  34.  
  35.  
  36. def from_flags(flags):
  37.     return (flags & 30720) >> 11
  38.  
  39.  
  40. def to_flags(value):
  41.     return value << 11 & 30720
  42.  
  43.  
  44. def to_text(value):
  45.     text = _by_value.get(value)
  46.     if text is None:
  47.         text = str(value)
  48.     
  49.     return text
  50.  
  51.  
  52. def is_update(flags):
  53.     if from_flags(flags) == UPDATE:
  54.         return True
  55.     
  56.     return False
  57.  
  58.